/*     */ package de.innosystec.unrar;
/*     */ 
/*     */ import de.innosystec.unrar.rarfile.FileHeader;
/*     */ import de.innosystec.unrar.rarfile.MainHeader;
/*     */ import de.innosystec.unrar.unpack.ComprDataIO;
/*     */ import java.io.File;
/*     */ import java.io.IOException;
/*     */ import java.io.PrintStream;
/*     */ 
/*     */ public class Volume
/*     */ {
/*     */   public static boolean mergeArchive(Archive archive, ComprDataIO dataIO)
/*     */     throws IOException
/*     */   {
/*  19 */     FileHeader hd = dataIO.getSubHeader();
/*  20 */     if ((hd.getUnpVersion() >= 20) && 
/*  21 */       (hd.getFileCRC() != -1) && 
/*  22 */       (dataIO.getPackedCRC() != (hd.getFileCRC() ^ 0xFFFFFFFF))) {
/*  23 */       System.err.println("Data Bad CRC");
/*     */     }
/*     */ 
/*  26 */     boolean oldNumbering = (!archive.getMainHeader().isNewNumbering()) || 
/*  27 */       (archive.isOldFormat());
/*  28 */     String nextName = nextVolumeName(archive.getFile().getAbsolutePath(), 
/*  29 */       oldNumbering);
/*  30 */     File nextVolume = new File(nextName);
/*  31 */     UnrarCallback callback = archive.getUnrarCallback();
/*  32 */     if ((callback != null) && (!callback.isNextVolumeReady(nextVolume))) {
/*  33 */       return false;
/*     */     }
/*  35 */     if (!nextVolume.exists()) {
/*  36 */       return false;
/*     */     }
/*  38 */     archive.setFile(nextVolume);
/*  39 */     hd = archive.nextFileHeader();
/*  40 */     if (hd == null) {
/*  41 */       return false;
/*     */     }
/*  43 */     dataIO.init(hd);
/*  44 */     return true; } 
/*     */   public static String nextVolumeName(String arcName, boolean oldNumbering) { // Byte code:
/*     */     //   0: iload_1
/*     */     //   1: ifne +191 -> 192
/*     */     //   4: aload_0
/*     */     //   5: invokevirtual 122	java/lang/String:length	()I
/*     */     //   8: istore_2
/*     */     //   9: iload_2
/*     */     //   10: iconst_1
/*     */     //   11: isub
/*     */     //   12: istore_3
/*     */     //   13: goto +6 -> 19
/*     */     //   16: iinc 3 255
/*     */     //   19: iload_3
/*     */     //   20: iflt +14 -> 34
/*     */     //   23: aload_0
/*     */     //   24: iload_3
/*     */     //   25: invokevirtual 127	java/lang/String:charAt	(I)C
/*     */     //   28: invokestatic 131	de/innosystec/unrar/Volume:isDigit	(C)Z
/*     */     //   31: ifeq -15 -> 16
/*     */     //   34: iload_3
/*     */     //   35: iconst_1
/*     */     //   36: iadd
/*     */     //   37: istore 4
/*     */     //   39: iload_3
/*     */     //   40: iconst_1
/*     */     //   41: isub
/*     */     //   42: istore 5
/*     */     //   44: goto +6 -> 50
/*     */     //   47: iinc 5 255
/*     */     //   50: iload 5
/*     */     //   52: iflt +15 -> 67
/*     */     //   55: aload_0
/*     */     //   56: iload 5
/*     */     //   58: invokevirtual 127	java/lang/String:charAt	(I)C
/*     */     //   61: invokestatic 131	de/innosystec/unrar/Volume:isDigit	(C)Z
/*     */     //   64: ifne -17 -> 47
/*     */     //   67: iload 5
/*     */     //   69: ifge +5 -> 74
/*     */     //   72: aconst_null
/*     */     //   73: areturn
/*     */     //   74: iinc 5 1
/*     */     //   77: new 135	java/lang/StringBuilder
/*     */     //   80: dup
/*     */     //   81: iload_2
/*     */     //   82: invokespecial 137	java/lang/StringBuilder:<init>	(I)V
/*     */     //   85: astore 6
/*     */     //   87: aload 6
/*     */     //   89: aload_0
/*     */     //   90: iconst_0
/*     */     //   91: iload 5
/*     */     //   93: invokevirtual 140	java/lang/StringBuilder:append	(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
/*     */     //   96: pop
/*     */     //   97: iload_3
/*     */     //   98: iload 5
/*     */     //   100: isub
/*     */     //   101: iconst_1
/*     */     //   102: iadd
/*     */     //   103: newarray char
/*     */     //   105: astore 7
/*     */     //   107: aload_0
/*     */     //   108: iload 5
/*     */     //   110: iload_3
/*     */     //   111: iconst_1
/*     */     //   112: iadd
/*     */     //   113: aload 7
/*     */     //   115: iconst_0
/*     */     //   116: invokevirtual 144	java/lang/String:getChars	(II[CI)V
/*     */     //   119: aload 7
/*     */     //   121: arraylength
/*     */     //   122: iconst_1
/*     */     //   123: isub
/*     */     //   124: istore_3
/*     */     //   125: goto +12 -> 137
/*     */     //   128: aload 7
/*     */     //   130: iload_3
/*     */     //   131: bipush 48
/*     */     //   133: castore
/*     */     //   134: iinc 3 255
/*     */     //   137: iload_3
/*     */     //   138: iflt +18 -> 156
/*     */     //   141: aload 7
/*     */     //   143: iload_3
/*     */     //   144: dup2
/*     */     //   145: caload
/*     */     //   146: iconst_1
/*     */     //   147: iadd
/*     */     //   148: i2c
/*     */     //   149: dup_x2
/*     */     //   150: castore
/*     */     //   151: bipush 58
/*     */     //   153: if_icmpeq -25 -> 128
/*     */     //   156: iload_3
/*     */     //   157: ifge +11 -> 168
/*     */     //   160: aload 6
/*     */     //   162: bipush 49
/*     */     //   164: invokevirtual 148	java/lang/StringBuilder:append	(C)Ljava/lang/StringBuilder;
/*     */     //   167: pop
/*     */     //   168: aload 6
/*     */     //   170: aload 7
/*     */     //   172: invokevirtual 151	java/lang/StringBuilder:append	([C)Ljava/lang/StringBuilder;
/*     */     //   175: pop
/*     */     //   176: aload 6
/*     */     //   178: aload_0
/*     */     //   179: iload 4
/*     */     //   181: iload_2
/*     */     //   182: invokevirtual 140	java/lang/StringBuilder:append	(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
/*     */     //   185: pop
/*     */     //   186: aload 6
/*     */     //   188: invokevirtual 154	java/lang/StringBuilder:toString	()Ljava/lang/String;
/*     */     //   191: areturn
/*     */     //   192: aload_0
/*     */     //   193: invokevirtual 122	java/lang/String:length	()I
/*     */     //   196: istore_2
/*     */     //   197: iload_2
/*     */     //   198: iconst_4
/*     */     //   199: if_icmple +15 -> 214
/*     */     //   202: aload_0
/*     */     //   203: iload_2
/*     */     //   204: iconst_4
/*     */     //   205: isub
/*     */     //   206: invokevirtual 127	java/lang/String:charAt	(I)C
/*     */     //   209: bipush 46
/*     */     //   211: if_icmpeq +5 -> 216
/*     */     //   214: aconst_null
/*     */     //   215: areturn
/*     */     //   216: new 135	java/lang/StringBuilder
/*     */     //   219: dup
/*     */     //   220: invokespecial 157	java/lang/StringBuilder:<init>	()V
/*     */     //   223: astore_3
/*     */     //   224: iload_2
/*     */     //   225: iconst_3
/*     */     //   226: isub
/*     */     //   227: istore 4
/*     */     //   229: aload_3
/*     */     //   230: aload_0
/*     */     //   231: iconst_0
/*     */     //   232: iload 4
/*     */     //   234: invokevirtual 140	java/lang/StringBuilder:append	(Ljava/lang/CharSequence;II)Ljava/lang/StringBuilder;
/*     */     //   237: pop
/*     */     //   238: aload_0
/*     */     //   239: iload 4
/*     */     //   241: iconst_1
/*     */     //   242: iadd
/*     */     //   243: invokevirtual 127	java/lang/String:charAt	(I)C
/*     */     //   246: invokestatic 131	de/innosystec/unrar/Volume:isDigit	(C)Z
/*     */     //   249: ifeq +17 -> 266
/*     */     //   252: aload_0
/*     */     //   253: iload 4
/*     */     //   255: iconst_2
/*     */     //   256: iadd
/*     */     //   257: invokevirtual 127	java/lang/String:charAt	(I)C
/*     */     //   260: invokestatic 131	de/innosystec/unrar/Volume:isDigit	(C)Z
/*     */     //   263: ifne +13 -> 276
/*     */     //   266: aload_3
/*     */     //   267: ldc 158
/*     */     //   269: invokevirtual 160	java/lang/StringBuilder:append	(Ljava/lang/String;)Ljava/lang/StringBuilder;
/*     */     //   272: pop
/*     */     //   273: goto +61 -> 334
/*     */     //   276: iconst_3
/*     */     //   277: newarray char
/*     */     //   279: astore 5
/*     */     //   281: aload_0
/*     */     //   282: iload 4
/*     */     //   284: iload_2
/*     */     //   285: aload 5
/*     */     //   287: iconst_0
/*     */     //   288: invokevirtual 144	java/lang/String:getChars	(II[CI)V
/*     */     //   291: aload 5
/*     */     //   293: arraylength
/*     */     //   294: iconst_1
/*     */     //   295: isub
/*     */     //   296: istore 6
/*     */     //   298: goto +13 -> 311
/*     */     //   301: aload 5
/*     */     //   303: iload 6
/*     */     //   305: bipush 48
/*     */     //   307: castore
/*     */     //   308: iinc 6 255
/*     */     //   311: aload 5
/*     */     //   313: iload 6
/*     */     //   315: dup2
/*     */     //   316: caload
/*     */     //   317: iconst_1
/*     */     //   318: iadd
/*     */     //   319: i2c
/*     */     //   320: dup_x2
/*     */     //   321: castore
/*     */     //   322: bipush 58
/*     */     //   324: if_icmpeq -23 -> 301
/*     */     //   327: aload_3
/*     */     //   328: aload 5
/*     */     //   330: invokevirtual 151	java/lang/StringBuilder:append	([C)Ljava/lang/StringBuilder;
/*     */     //   333: pop
/*     */     //   334: aload_3
/*     */     //   335: invokevirtual 154	java/lang/StringBuilder:toString	()Ljava/lang/String;
/*     */     //   338: areturn } 
				return null;
/*     */ 
/*     */ }

/* 109 */   private static boolean isDigit(char c) { 
					return (c >= '0') && (c <= '9'); 
				}
}
/* Location:           E:\java\apache-tomcat-6.0.36\webapps\btsm\WEB-INF\classes\
 * Qualified Name:     de.innosystec.unrar.Volume
 * JD-Core Version:    0.6.2
 */